package com.ruoyi.ams.domain;


import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.ruoyi.common.core.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 盘点单对象 ams_asset_inventory
 * 
 * @author yfkj
 * @date 2022-05-16
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class AmsAssetInventory
{
    private static final long serialVersionUID = 1L;
    /** 盘点单表主键 */
    @TableField(exist = true)
    @TableId(type= IdType.AUTO)
    @ApiModelProperty(value =  "${comment}")
    private Long inventoryId;
    /** 流程表主键 */
    @Excel(name = "流程表主键")
    @TableField(exist = true)
    @ApiModelProperty(value =  "流程表主键")
    private Long processId;
    /** 盘点单名称 */
    @Excel(name = "盘点单名称")
    @TableField(exist = true)
    @ApiModelProperty(value =  "盘点单名称")
    private String inventoryName;
    /** 编号 */
    @Excel(name = "编号")
    @TableField(exist = true)
    @ApiModelProperty(value =  "编号")
    private String sn;
    /** 状态 */
    @Excel(name = "状态")
    @TableField(exist = true)
    @ApiModelProperty(value =  "状态")
    private String status;
    /** 备注 */
    @Excel(name = "备注")
    @TableField(exist = true)
    @ApiModelProperty(value =  "备注")
    private String remark;

    /** 管理员主键数组 */
    @Excel(name = "管理员主键数组")
    @TableField(exist = true)
    @ApiModelProperty(value =  "管理员主键数组")
    private String adminUserIds;
    @TableField(exist = false)
    @ApiModelProperty(value =  "管理员姓名数组")
    private String adminUsersName;

    /** 盘点开始时间 */
    @Excel(name = "盘点开始时间")
    @TableField(exist = true)
    @ApiModelProperty(value =  "盘点开始时间")
    private Long startTime;
    @TableField(exist = false)
    @ApiModelProperty(value =  "盘点开始时间字符串")
    private String startTimeStr;

    /** 盘点结束时间 */
    @Excel(name = "盘点结束时间")
    @TableField(exist = true)
    @ApiModelProperty(value =  "盘点结束时间")
    private Long endTime;
    @TableField(exist = false)
    @ApiModelProperty(value =  "盘点结束时间字符串")
    private String endTimeStr;

    /** 盘点资产类别主键数组 */
    @Excel(name = "盘点资产类别主键数组")
    @TableField(exist = true)
    @ApiModelProperty(value =  "盘点资产类别主键数组")
    private String assetTypeIds;
    @TableField(exist = false)
    @ApiModelProperty(value =  "盘点资产类别名称数组")
    private String assetTypesName;

    /** 使用公司/部门主键数组 */
    @Excel(name = "使用公司/部门主键数组")
    @TableField(exist = true)
    @ApiModelProperty(value =  "使用公司/部门主键数组")
    private String useDeptIds;
    @TableField(exist = false)
    @ApiModelProperty(value =  "使用公司/部门名称数组")
    private String useDeptsName;

    /** 所属公司/部门主键数组 */
    @Excel(name = "所属公司/部门主键数组")
    @TableField(exist = true)
    @ApiModelProperty(value =  "所属公司/部门主键数组")
    private String ownDeptIds;
    @TableField(exist = false)
    @ApiModelProperty(value =  "所属公司/部门名称数组")
    private String ownDeptsName;

    /** 区域主键数组 */
    @Excel(name = "区域主键数组")
    @TableField(exist = true)
    @ApiModelProperty(value =  "区域主键数组")
    private String addressIds;
    @TableField(exist = false)
    @ApiModelProperty(value =  "区域名称数组")
    private String addressNames;

    /** 购入日期范围 */
    @Excel(name = "购入日期范围")
    @TableField(exist = true)
    @ApiModelProperty(value =  "购入日期范围")
    private String purchaseTimeScope;
    /** 资产状态 */
    @Excel(name = "资产状态")
    @TableField(exist = true)
    @ApiModelProperty(value =  "资产状态")
    private String assetStatus;
    /** 盘点资产总数 */
    @Excel(name = "盘点资产总数")
    @TableField(exist = true)
    @ApiModelProperty(value =  "盘点资产总数")
    private Long assetTotalNum;

    @Excel(name = "盘点中")
    @TableField(exist = false)
    @ApiModelProperty(value =  "盘点中")
    private Integer inventorying;

    @Excel(name = "已盘点")
    @TableField(exist = false)
    @ApiModelProperty(value =  "已盘点")
    private Integer  inventoried;

    @Excel(name = "盘亏")
    @TableField(exist = false)
    @ApiModelProperty(value =  "盘亏")
    private Integer  inventoryLoss;

    @Excel(name = "盘盈")
    @TableField(exist = false)
    @ApiModelProperty(value =  "盘盈")
    private Integer  inventoryProfit;

    public static final String INVENTORY_ID="inventory_id";
    public static final String PROCESS_ID="process_id";
    public static final String INVENTORY_NAME="inventory_name";
    public static final String SN="sn";
    public static final String STATUS="status";
    public static final String ADMIN_USER_IDS="admin_user_ids";
    public static final String REMARK="remark";
    public static final String START_TIME="start_time";
    public static final String END_TIME="end_time";
    public static final String ASSET_TYPE_IDS="asset_type_ids";
    public static final String USE_DEPT_IDS="use_dept_ids";
    public static final String OWN_DEPT_IDS="own_dept_ids";
    public static final String ADDRESS_IDS="address_ids";
    public static final String PURCHASE_TIME_SCOPE="purchase_time_scope";
    public static final String ASSET_STATUS="asset_status";
    public static final String ASSET_TOTAL_NUM="asset_total_num";
    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("inventoryId", getInventoryId())
            .append("processId", getProcessId())
            .append("inventoryName", getInventoryName())
            .append("sn", getSn())
            .append("status", getStatus())
            .append("adminUserIds", getAdminUserIds())
            .append("remark", getRemark())
            .append("startTime", getStartTime())
            .append("endTime", getEndTime())
            .append("assetTypeIds", getAssetTypeIds())
            .append("useDeptIds", getUseDeptIds())
            .append("ownDeptIds", getOwnDeptIds())
            .append("addressIds", getAddressIds())
            .append("purchaseTimeScope", getPurchaseTimeScope())
            .append("assetStatus", getAssetStatus())
            .append("assetTotalNum", getAssetTotalNum())
            .toString();
    }
}
